class Utils {
	constructor(){
		// this.baseUrl = 'http//:localhost:8080'
		this.baseUrl = 'http://localhost:8080'
	}
	request(option = {
		showLoading: false
	}) {
		// 判断url是否存在
		if(!option.url){
			return false;
		}
		
		if(option.showLoading){
			this.showLoading()
		}
		return new Promise((resolve, reject) => {
			//打印url
			console.log(this.baseUrl + option.url);
			uni.request({
				url:this.baseUrl + option.url,
				data: option.data ? option.data : {},
				header: option.header ? option.header : {},
				method: option.method ? option.method : 'GET',
				success: (res) => {
					// 响应拦截器
					if(res.data.code == 200){
						// uni.showToast({
						// 	title: res.data.msg,
						// })
						resolve(res.data)
						//成功的
					}else {
						uni.showToast({
							title: res.data.msg,
							icon: 'error'
						})
					}
					
				},
				fail: (err) => {
					uni.showLoading({
						title: '网络异常'
					})
					reject(err)
				},
				complete: () => {
					uni.hideLoading()
				}
			})
		})
		
	}
	// 创建加载中loading效果
	showLoading() {
		// 从缓存中获取loading
		const isShowLoading = uni.getStorageSync('isShowLoading')
		// 检查页面中是否已经有loaing了
		if(isShowLoading){
			// loading 效果存在，把页面中其他loading效果关闭掉
			uni.hideLoading()
			// 设置loading状态
			uni.setStorageSync('isShowLoading', false)
		}
		//打开loading效果
		uni.showLoading({
			title:'加载中...',
			complete: () => {
				// loading显示出来了，在缓存设置为true
				uni.setStorageSync('isShowLoading', true)
			},
			fail: () => {
				uni.setStorageSync('isShowLoading', false)
			}
		})
	}
}

export default new Utils()